package com.wish.g1.finance.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 房租分期明细
 * </p>
 *
 * @author wxh
 * @since 2022-11-18
 */
@TableName("tb_rent_installment_detail")
public class RentInstallmentDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 房租分期申请单ID
     */
    private Long rentInstallmentId;

    /**
     * 商户id
     */
    private Long businessId;

    /**
     * 房产id
     */
    private Long housePropertyId;

    /**
     * 房产信息
     */
    private String realEstateInfo;

    /**
     * 房源ID
     */
    private String roomId;

    /**
     * 房源编号
     */
    private String roomCode;

    /**
     * 房源名称
     */
    private String roomName;

    /**
     * 应收月租金
     */
    private BigDecimal monthlyRentReceivable;

    /**
     * 分期后月租金
     */
    private BigDecimal monthlyRentAfStag;

    /**
     * 分期利息
     */
    private BigDecimal instalmentInterest;

    /**
     * 借款账期开始日：yyyymmdd
     */
    private String starLoanday;

    /**
     * 借款账期截止日：yyyymmdd
     */
    private String endLoanday;

    /**
     * 删除标识，0:未删除，1：删除
     */
    private Boolean delFlg;

    /**
     * 创建用户ID
     */
    private Long createUserid;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新用户ID
     */
    private Long updateUserid;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 资方订单号
     */
    private String yhOrderNo;

    /**
     * 距离最近还款日天数
     */
    private Integer recentlyRefundDays;

    /**
     * 结清需还款
     */
    private BigDecimal settleAmount;

    /**
     * 剩余期数
     */
    private Integer remainingPeriod;

    /**
     * 每月应还日
     */
    private LocalDate monthlyRepayDay;

    /**
     * 最大逾期天数
     */
    private Integer maxOverdueDays;

    /**
     * 当前应还
     */
    private BigDecimal currentShouldRepay;

    /**
     * 退服务费金额
     */
    private BigDecimal refundAmount;

    /**
     * 退服务费状态 :0 未退 1 已退
     */
    private Boolean refundStatus;

    /**
     * 财务单号
     */
    private String borrowNid;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public Long getRentInstallmentId() {
        return rentInstallmentId;
    }

    public void setRentInstallmentId(Long rentInstallmentId) {
        this.rentInstallmentId = rentInstallmentId;
    }
    public Long getBusinessId() {
        return businessId;
    }

    public void setBusinessId(Long businessId) {
        this.businessId = businessId;
    }
    public Long getHousePropertyId() {
        return housePropertyId;
    }

    public void setHousePropertyId(Long housePropertyId) {
        this.housePropertyId = housePropertyId;
    }
    public String getRealEstateInfo() {
        return realEstateInfo;
    }

    public void setRealEstateInfo(String realEstateInfo) {
        this.realEstateInfo = realEstateInfo;
    }
    public String getRoomId() {
        return roomId;
    }

    public void setRoomId(String roomId) {
        this.roomId = roomId;
    }
    public String getRoomCode() {
        return roomCode;
    }

    public void setRoomCode(String roomCode) {
        this.roomCode = roomCode;
    }
    public String getRoomName() {
        return roomName;
    }

    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }
    public BigDecimal getMonthlyRentReceivable() {
        return monthlyRentReceivable;
    }

    public void setMonthlyRentReceivable(BigDecimal monthlyRentReceivable) {
        this.monthlyRentReceivable = monthlyRentReceivable;
    }
    public BigDecimal getMonthlyRentAfStag() {
        return monthlyRentAfStag;
    }

    public void setMonthlyRentAfStag(BigDecimal monthlyRentAfStag) {
        this.monthlyRentAfStag = monthlyRentAfStag;
    }
    public BigDecimal getInstalmentInterest() {
        return instalmentInterest;
    }

    public void setInstalmentInterest(BigDecimal instalmentInterest) {
        this.instalmentInterest = instalmentInterest;
    }
    public String getStarLoanday() {
        return starLoanday;
    }

    public void setStarLoanday(String starLoanday) {
        this.starLoanday = starLoanday;
    }
    public String getEndLoanday() {
        return endLoanday;
    }

    public void setEndLoanday(String endLoanday) {
        this.endLoanday = endLoanday;
    }
    public Boolean getDelFlg() {
        return delFlg;
    }

    public void setDelFlg(Boolean delFlg) {
        this.delFlg = delFlg;
    }
    public Long getCreateUserid() {
        return createUserid;
    }

    public void setCreateUserid(Long createUserid) {
        this.createUserid = createUserid;
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    public Long getUpdateUserid() {
        return updateUserid;
    }

    public void setUpdateUserid(Long updateUserid) {
        this.updateUserid = updateUserid;
    }
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
    public String getYhOrderNo() {
        return yhOrderNo;
    }

    public void setYhOrderNo(String yhOrderNo) {
        this.yhOrderNo = yhOrderNo;
    }
    public Integer getRecentlyRefundDays() {
        return recentlyRefundDays;
    }

    public void setRecentlyRefundDays(Integer recentlyRefundDays) {
        this.recentlyRefundDays = recentlyRefundDays;
    }
    public BigDecimal getSettleAmount() {
        return settleAmount;
    }

    public void setSettleAmount(BigDecimal settleAmount) {
        this.settleAmount = settleAmount;
    }
    public Integer getRemainingPeriod() {
        return remainingPeriod;
    }

    public void setRemainingPeriod(Integer remainingPeriod) {
        this.remainingPeriod = remainingPeriod;
    }
    public LocalDate getMonthlyRepayDay() {
        return monthlyRepayDay;
    }

    public void setMonthlyRepayDay(LocalDate monthlyRepayDay) {
        this.monthlyRepayDay = monthlyRepayDay;
    }
    public Integer getMaxOverdueDays() {
        return maxOverdueDays;
    }

    public void setMaxOverdueDays(Integer maxOverdueDays) {
        this.maxOverdueDays = maxOverdueDays;
    }
    public BigDecimal getCurrentShouldRepay() {
        return currentShouldRepay;
    }

    public void setCurrentShouldRepay(BigDecimal currentShouldRepay) {
        this.currentShouldRepay = currentShouldRepay;
    }
    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }
    public Boolean getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(Boolean refundStatus) {
        this.refundStatus = refundStatus;
    }
    public String getBorrowNid() {
        return borrowNid;
    }

    public void setBorrowNid(String borrowNid) {
        this.borrowNid = borrowNid;
    }

    @Override
    public String toString() {
        return "RentInstallmentDetail{" +
            "id=" + id +
            ", rentInstallmentId=" + rentInstallmentId +
            ", businessId=" + businessId +
            ", housePropertyId=" + housePropertyId +
            ", realEstateInfo=" + realEstateInfo +
            ", roomId=" + roomId +
            ", roomCode=" + roomCode +
            ", roomName=" + roomName +
            ", monthlyRentReceivable=" + monthlyRentReceivable +
            ", monthlyRentAfStag=" + monthlyRentAfStag +
            ", instalmentInterest=" + instalmentInterest +
            ", starLoanday=" + starLoanday +
            ", endLoanday=" + endLoanday +
            ", delFlg=" + delFlg +
            ", createUserid=" + createUserid +
            ", createTime=" + createTime +
            ", updateUserid=" + updateUserid +
            ", updateTime=" + updateTime +
            ", yhOrderNo=" + yhOrderNo +
            ", recentlyRefundDays=" + recentlyRefundDays +
            ", settleAmount=" + settleAmount +
            ", remainingPeriod=" + remainingPeriod +
            ", monthlyRepayDay=" + monthlyRepayDay +
            ", maxOverdueDays=" + maxOverdueDays +
            ", currentShouldRepay=" + currentShouldRepay +
            ", refundAmount=" + refundAmount +
            ", refundStatus=" + refundStatus +
            ", borrowNid=" + borrowNid +
        "}";
    }
}
